WRAP_CLASS("itk::ComposeRGBAImageFilter")

  IF(WRAP_rgba_unsigned_char AND WRAP_unsigned_char)
    WRAP_IMAGE_FILTER_TYPES(UC RGBAUC)
  ENDIF(WRAP_rgba_unsigned_char AND WRAP_unsigned_char)

  IF(WRAP_rgba_unsigned_short AND WRAP_unsigned_short)
    WRAP_IMAGE_FILTER_TYPES(US RGBAUS)
  ENDIF(WRAP_rgba_unsigned_short AND WRAP_unsigned_short)
  
  BEGIN_MANAGED_METHOD("SetInput1")
    SET(MANAGED_METHOD_SUMMARY         "Set Input1 image.")
    SET(MANAGED_METHOD_RETURN_TYPE     "void")
    SET(MANAGED_METHOD_PARAMS          "itkDataObject^ input")
    SET(MANAGED_METHOD_TYPE_BODY       "\n\t\tINativePointer^ inputPtr = safe_cast<INativePointer^>(input);\n\t\tthis->m_PointerToNative->SetInput(0, reinterpret_cast<NativeType::InputImageType*>(inputPtr->NativePointer.ToPointer()));")
    SET(MANAGED_METHOD_WRAPPER_BODY    "iInstance->SetInput1(input);")
  END_MANAGED_METHOD()

  BEGIN_MANAGED_METHOD("SetInput2")
    SET(MANAGED_METHOD_SUMMARY         "Set Input2 image.")
    SET(MANAGED_METHOD_RETURN_TYPE     "void")
    SET(MANAGED_METHOD_PARAMS          "itkDataObject^ input")
    SET(MANAGED_METHOD_TYPE_BODY       "\n\t\tINativePointer^ inputPtr = safe_cast<INativePointer^>(input);\n\t\tthis->m_PointerToNative->SetInput(1, reinterpret_cast<NativeType::InputImageType*>(inputPtr->NativePointer.ToPointer()));")
    SET(MANAGED_METHOD_WRAPPER_BODY    "iInstance->SetInput2(input);")
  END_MANAGED_METHOD()
  
  BEGIN_MANAGED_METHOD("SetInput3")
    SET(MANAGED_METHOD_SUMMARY         "Set Input3 image.")
    SET(MANAGED_METHOD_RETURN_TYPE     "void")
    SET(MANAGED_METHOD_PARAMS          "itkDataObject^ input")
    SET(MANAGED_METHOD_TYPE_BODY       "\n\t\tINativePointer^ inputPtr = safe_cast<INativePointer^>(input);\n\t\tthis->m_PointerToNative->SetInput(2, reinterpret_cast<NativeType::InputImageType*>(inputPtr->NativePointer.ToPointer()));")
    SET(MANAGED_METHOD_WRAPPER_BODY    "iInstance->SetInput3(input);")
  END_MANAGED_METHOD()
  
  BEGIN_MANAGED_METHOD("SetInput4")
    SET(MANAGED_METHOD_SUMMARY         "Set Input4 image.")
    SET(MANAGED_METHOD_RETURN_TYPE     "void")
    SET(MANAGED_METHOD_PARAMS          "itkDataObject^ input")
    SET(MANAGED_METHOD_TYPE_BODY       "\n\t\tINativePointer^ inputPtr = safe_cast<INativePointer^>(input);\n\t\tthis->m_PointerToNative->SetInput(3, reinterpret_cast<NativeType::InputImageType*>(inputPtr->NativePointer.ToPointer()));")
    SET(MANAGED_METHOD_WRAPPER_BODY    "iInstance->SetInput4(input);")
  END_MANAGED_METHOD()

  BEGIN_MANAGED_METHOD("SetInput1")
    SET(MANAGED_METHOD_SUMMARY         "Set Input1 image.")
    SET(MANAGED_METHOD_RETURN_TYPE     "void")
    SET(MANAGED_METHOD_PARAMS          "IntPtr inputPtr")
    SET(MANAGED_METHOD_TYPE_BODY       "this->m_PointerToNative->SetInput(0, (NativeType::InputImageType*)inputPtr.ToPointer());")
    SET(MANAGED_METHOD_WRAPPER_BODY    "iInstance->SetInput1(inputPtr);")
  END_MANAGED_METHOD()

  BEGIN_MANAGED_METHOD("SetInput2")
    SET(MANAGED_METHOD_SUMMARY         "Set Input2 image.")
    SET(MANAGED_METHOD_RETURN_TYPE     "void")
    SET(MANAGED_METHOD_PARAMS          "IntPtr inputPtr")
    SET(MANAGED_METHOD_TYPE_BODY       "this->m_PointerToNative->SetInput(1, (NativeType::InputImageType*)inputPtr.ToPointer());")
    SET(MANAGED_METHOD_WRAPPER_BODY    "iInstance->SetInput2(inputPtr);")
  END_MANAGED_METHOD()
  
  BEGIN_MANAGED_METHOD("SetInput3")
    SET(MANAGED_METHOD_SUMMARY         "Set Input3 image.")
    SET(MANAGED_METHOD_RETURN_TYPE     "void")
    SET(MANAGED_METHOD_PARAMS          "IntPtr inputPtr")
    SET(MANAGED_METHOD_TYPE_BODY       "this->m_PointerToNative->SetInput(2, (NativeType::InputImageType*)inputPtr.ToPointer());")
    SET(MANAGED_METHOD_WRAPPER_BODY    "iInstance->SetInput3(inputPtr);")
  END_MANAGED_METHOD()

  BEGIN_MANAGED_METHOD("SetInput4")
    SET(MANAGED_METHOD_SUMMARY         "Set Input4 image.")
    SET(MANAGED_METHOD_RETURN_TYPE     "void")
    SET(MANAGED_METHOD_PARAMS          "IntPtr inputPtr")
    SET(MANAGED_METHOD_TYPE_BODY       "this->m_PointerToNative->SetInput(3, (NativeType::InputImageType*)inputPtr.ToPointer());")
    SET(MANAGED_METHOD_WRAPPER_BODY    "iInstance->SetInput4(inputPtr);")
  END_MANAGED_METHOD()

END_WRAP_CLASS()
